// pages/testRecord/testRecord.js
import { getTestRecordList } from '../../api/person'

Page({
  data: {
    records: [],
    isLoading: false,
    hasMore: true
  },

  onLoad(options) {
    this.loadTestRecords();
  },

  onShow() {
    // 页面显示时重新加载数据
    this.loadTestRecords();
  },

  // 从本地存储获取学生信息
  getStudentInfo() {
    const studentInfo = wx.getStorageSync('studentInfo');
    if (!studentInfo || !studentInfo.id) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      setTimeout(() => {
        wx.redirectTo({
          url: '/pages/logs/logs'
        });
      }, 1500);
      return null;
    }
    return studentInfo;
  },

  // 加载测评记录
  async loadTestRecords() {
    const studentInfo = this.getStudentInfo();
    if (!studentInfo) return;

    if (this.data.isLoading) return;

    this.setData({ isLoading: true });

    try {
      wx.showLoading({
        title: '加载中...',
      });

      const result = await getTestRecordList(studentInfo.id);
      console.log(result);
      
      wx.hideLoading();

      if (result) {
        // 处理返回的数据
        const processedRecords = this.processRecordData(result);
        this.setData({
          records: processedRecords,
          isLoading: false
        });
      } else {
        wx.showToast({
          title: result.msg || '加载失败',
          icon: 'none'
        });
        this.setData({ isLoading: false });
      }
    } catch (error) {
      console.error('加载测评记录失败:', error);
      wx.hideLoading();
      wx.showToast({
        title: '网络错误',
        icon: 'none'
      });
      this.setData({ isLoading: false });
    }
  },

  // 处理接口返回的数据格式
  processRecordData(apiData) {
    if (!apiData || !Array.isArray(apiData)) {
      return [];
    }

    return apiData.map(item => {
      // 转换时间戳为日期格式
      const testDate = item.testTime ? this.formatDate(item.testTime) : '未知日期';
      
      // 处理分数显示
      const score = item.testScore !== null && item.testScore !== undefined 
        ? `${item.testScore}分` 
        : '未评分';
      
      return {
        id: item.recordId,
        type: item.testName || '未知测试',
        score: score,
        date: testDate,
        rawData: item // 保留原始数据，便于后续使用
      };
    });
  },

  // 格式化时间戳为日期字符串
  formatDate(timestamp) {
    if (!timestamp) return '';
    
    const date = new Date(timestamp);
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    
    return `${year}-${month}-${day}`;
  },

  // 下拉刷新
  onPullDownRefresh() {
    this.loadTestRecords().finally(() => {
      wx.stopPullDownRefresh();
    });
  },

  // 点击记录卡片
  onRecordTap(e) {
    const index = e.currentTarget.dataset.index;
    const record = this.data.records[index];
    
    if (record && record.rawData) {
      // 可以跳转到详情页或显示更多信息
      this.showRecordDetail(record);
    }
  },

  // 显示记录详情
  showRecordDetail(record) {
    const content = `
测试名称：${record.type}
测试时间：${record.date}
测试分数：${record.score}
测试结果：${record.rawData.testResult || '暂无详细结果'}
    `.trim();

    wx.showModal({
      title: '测评详情',
      content: content,
      showCancel: false,
      confirmText: '知道了'
    });
  }
})